#Boa:Frame:Frame_Clientes
# -*- coding: cp1252 -*-

import wx


def create(parent):
    return Frame_Clientes(parent)

[wxID_FRAME_CLIENTES, wxID_FRAME_CLIENTESBACKTOMENU, 
 wxID_FRAME_CLIENTESCADASTRARCLIENTE, wxID_FRAME_CLIENTESEXCLUIRCLIENTE, 
 wxID_FRAME_CLIENTESLISTCLIENTES, wxID_FRAME_CLIENTESPESQUISARCLIENTE, 
 wxID_FRAME_CLIENTESSTATICBITMAP1, wxID_FRAME_CLIENTESSTATICBOX1, 
 wxID_FRAME_CLIENTESSTATICTEXT1, wxID_FRAME_CLIENTESSTATICTEXT3, 
 wxID_FRAME_CLIENTESTEXTCTRL1, 
] = [wx.NewId() for _init_ctrls in range(11)]

class Frame_Clientes(wx.Frame):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Frame.__init__(self, id=wxID_FRAME_CLIENTES, name=u'Frame_Clientes',
              parent=prnt, pos=wx.Point(536, 81), size=wx.Size(665, 647),
              style=wx.TAB_TRAVERSAL | wx.DEFAULT_FRAME_STYLE,
              title=u'Frame_Clientes')
        self.SetClientSize(wx.Size(649, 609))
        self.SetBackgroundColour(wx.Colour(255, 255, 255))
        self.Center(wx.BOTH)

        self.staticBox1 = wx.StaticBox(id=wxID_FRAME_CLIENTESSTATICBOX1,
              label=u"Cristina's Hair - Cadastro de Clientes",
              name='staticBox1', parent=self, pos=wx.Point(16, 16),
              size=wx.Size(608, 371), style=0)
        self.staticBox1.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL,
              False, u'Tahoma'))

        self.CadastrarCliente = wx.Button(id=wxID_FRAME_CLIENTESCADASTRARCLIENTE,
              label=u'Cadastrar Novo Cliente', name=u'CadastrarCliente',
              parent=self, pos=wx.Point(32, 56), size=wx.Size(128, 56),
              style=0)
        self.CadastrarCliente.Bind(wx.EVT_BUTTON, self.OnCadastrarClienteButton,
              id=wxID_FRAME_CLIENTESCADASTRARCLIENTE)

        self.textCtrl1 = wx.TextCtrl(id=wxID_FRAME_CLIENTESTEXTCTRL1,
              name='textCtrl1', parent=self, pos=wx.Point(184, 72),
              size=wx.Size(312, 21), style=wx.TE_PROCESS_ENTER, value=u'')
        self.textCtrl1.Bind(wx.EVT_TEXT_ENTER, self.OnTextCtrl1TextEnter,
              id=wxID_FRAME_CLIENTESTEXTCTRL1)

        self.PesquisarCliente = wx.Button(id=wxID_FRAME_CLIENTESPESQUISARCLIENTE,
              label=u'Pesquisar', name=u'PesquisarCliente', parent=self,
              pos=wx.Point(512, 72), size=wx.Size(80, 24), style=0)
        self.PesquisarCliente.Bind(wx.EVT_BUTTON, self.OnPesquisarClienteButton,
              id=wxID_FRAME_CLIENTESPESQUISARCLIENTE)

        self.ExcluirCliente = wx.Button(id=wxID_FRAME_CLIENTESEXCLUIRCLIENTE,
              label=u'Excluir Cliente', name=u'ExcluirCliente', parent=self,
              pos=wx.Point(32, 136), size=wx.Size(128, 56), style=0)
        self.ExcluirCliente.Bind(wx.EVT_BUTTON, self.OnExcluirClienteButton,
              id=wxID_FRAME_CLIENTESEXCLUIRCLIENTE)

        self.listclientes = wx.ListBox(choices=[],
              id=wxID_FRAME_CLIENTESLISTCLIENTES, name=u'listclientes',
              parent=self, pos=wx.Point(184, 136), size=wx.Size(424, 208),
              style=0)
        self.listclientes.SetLabel(u'')
        self.listclientes.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL,
              False, u'Tahoma'))
        self.listclientes.Bind(wx.EVT_LEFT_DCLICK,
              self.OnListclientesLeftDclick)

        self.backtomenu = wx.Button(id=wxID_FRAME_CLIENTESBACKTOMENU,
              label=u'Voltar para o Menu', name=u'backtomenu', parent=self,
              pos=wx.Point(32, 288), size=wx.Size(128, 56), style=0)
        self.backtomenu.Bind(wx.EVT_BUTTON, self.OnBacktomenuButton,
              id=wxID_FRAME_CLIENTESBACKTOMENU)

        self.staticText1 = wx.StaticText(id=wxID_FRAME_CLIENTESSTATICTEXT1,
              label=u'Pesquisar Clientes', name='staticText1', parent=self,
              pos=wx.Point(184, 48), size=wx.Size(124, 19), style=0)
        self.staticText1.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, u'Times New Roman'))

        self.staticText3 = wx.StaticText(id=wxID_FRAME_CLIENTESSTATICTEXT3,
              label=u'Nome', name='staticText3', parent=self, pos=wx.Point(192,
              120), size=wx.Size(35, 16), style=0)
        self.staticText3.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, u'Tahoma'))

        self.staticBitmap1 = wx.StaticBitmap(bitmap=wx.Bitmap(u'Imagens/logotipo300dpi-30%.jpg',
              wx.BITMAP_TYPE_JPEG), id=wxID_FRAME_CLIENTESSTATICBITMAP1,
              name='staticBitmap1', parent=self, pos=wx.Point(74, 416),
              size=wx.Size(500, 176), style=0)
        self.staticBitmap1.Center(wx.HORIZONTAL)

    def __init__(self, parent):
        self._init_ctrls(parent)
        self.parent = parent

        self.OnPesquisarClienteButton(None)

    def OnBacktomenuButton(self, event):
        self.Close()

        
        
    #Funcao Botao: Cadastrar Cliente
    def OnCadastrarClienteButton(self, event):
        from Dialog_CadastrarCliente import *
        janela = CadastrarCliente(self)
        janela.ShowModal()
        self.OnPesquisarClienteButton(None)
        
    #Funcao Botao: Pesquisar Cliente
    def OnPesquisarClienteButton(self, event):
        #limpa a listClientes
        self.listclientes.Set('')
        
        from Class_ClienteController import *
        Controle = ClienteController()
        Nome = self.textCtrl1.GetValue()
        
        #Pesquisa todos os clientes que possuam pelo menos uma parte do 
        #Nome igual ao que foi digitado na caixa de pesquisa
        self.ListaClientes = Controle.pesquisarClientesNome(Nome)
        
        #Coloca o Nome de todos os clientes da ListaClientes no ListBox
        if self.ListaClientes <> False:
            for i in self.ListaClientes:
                self.listclientes.Append(i.GetNome())
        
    #Funcao Botao: Excluir Cliente
    def OnExcluirClienteButton(self, event):
        from Class_ClienteController import *
        controller = ClienteController()
        if self.listclientes.GetCount() <> 0:
            
            #Armazena o Objeto do tipo Cliente selecionado
            pos = self.listclientes.GetSelection()
            cliente =  self.ListaClientes[pos]
            
            
            
            #Mostra a MessageBox confirmando a exclusao do cliente
            m = "Voce tem certeza que deseja excluir o(a) cliente\n%s ??"%(cliente.GetNome())
            t = "Exclusao Cliente"
            confirmacao = wx.MessageBox(m,t,wx.YES_NO)
            
            #Se "YES"
            if confirmacao == 2:
                
                
                confirmacao = controller.removerCliente(cliente)
                
                #Se o Cliente foi removido
                if confirmacao == True:
                    m = "Cliente removido com sucesso!"
                    t = "Exclusao Cliente"
                    wx.MessageBox(m,t,wx.OK)
                    self.OnPesquisarClienteButton(None)
                    
            
        #Se Nenhum cliente estiver selecionado
        else:
            m = "Nenhum Cliente na lista"
            t = "Exclusao Cliente"
            confirmacao = wx.MessageBox(m,t,wx.ICON_ERROR)
            
        self.OnPesquisarClienteButton(None)
        
    #Funcao Duplo Clique na num item da Lista de Clientes
    def OnListclientesLeftDclick(self, event):
        from Dialog_EditarCliente import *
        
        pos = self.listclientes.GetSelection()
        Cliente = self.ListaClientes[pos]
        Janela = EditarCliente(self, Cliente)
        Janela.ShowModal()
        self.OnPesquisarClienteButton(None)

    #Metodo acionado ao pressionar ENTER na caixa de Pesquisa
    def OnTextCtrl1TextEnter(self, event):
        self.OnPesquisarClienteButton(event)
